package com.alib.springcloud.service.impl;

import com.alib.springcloud.service.IMessageProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.MessageChannel;

import javax.annotation.Resource;
import java.util.UUID;


/**
 * Stream - RabbitMQ  - 发布者 业务代码 流程
 * */
                            // 不再使用 @service
@EnableBinding(Source.class)// 1、发布者使用 Source.class
public class IMessageProviderImpl implements IMessageProvider {

    // 不再使用 dao层
    //2、开启通道 Channel
    @Resource
    private MessageChannel output; // 使用 rabbit 的 Exchannel 的话，只能命名为 output

    @Override
    public String send() {
        String uid = UUID.randomUUID().toString();


        //3、往通道里面，发布消息
        this.output.send(MessageBuilder.withPayload(uid).build());



        System.out.println("发布者 --- 发送消息：" + uid);
        return uid;
    }
}
